//定义store
import {defineStore} from 'pinia'
import {ref} from 'vue'
/* 
    第一个参数:名字,唯一性
    第二个参数:函数,函数的内部可以定义状态的所有内容

    返回值: 函数
*/
export const useTokenStore = defineStore('token',()=>{
    //定义状态的内容

    //1.响应式变量
    const token = ref('')
    const userRole = ref(null)

    //2.定义一个函数,修改token的值
    const setToken = (newToken)=>{
        if (!newToken) {
            console.warn('警告: 试图设置空token')
            return
        }
        console.log('设置token:', newToken)
        token.value = newToken
    }

    const setUserRole = (role) => {
        if (role === undefined || role === null) {
            console.warn('警告: 试图设置无效角色')
            return
        }
        const roleNumber = Number(role)
        if (isNaN(roleNumber)) {
            console.warn('警告: 角色不是有效数字')
            return
        }
        console.log('设置用户角色:', roleNumber)
        userRole.value = roleNumber
    }

    //3.函数,移除token的值
    const removeToken = ()=>{
        console.log('清除token和角色')
        token.value=''
        userRole.value = null
    }

    return {
        token,
        userRole,
        setToken,
        setUserRole,
        removeToken
    }
},{
    persist: true // 使用默认配置，确保简单可靠
});